[IAD-BACKEND-003] Создать метод /api/v1/auth/login
Разработка auth-identity-service (Backend): Реализация REST-метода аутентификации и генерации сессий.
NoteКраткая карточка задачи
- Эпик: EPIC-IAD-001
- Компонент: auth-identity-service (FastAPI)
- Статус: Готово к реализации
- Ссылка на Метод: /api/v1/auth/login
1. Бизнес-контекст и цель (Business Context)
Для входа в систему необходимо проверять учетные данные пользователя и генерировать ему пару JWT токенов (Access + Refresh), упаковывая контекст группы (home_group_id и account_type) прямо в Payload.
Цель задачи: Реализовать эндпоинт /api/v1/auth/login, верифицирующий сессию и отдающий токены устройства в файле login.py.
2. Пользовательские истории (User Stories)
Как Зарегистрированный пользователь приложения FoodLifeCycle,
Я хочу вводить свой логин и пароль в форму входа,
Чтобы получить актуальный токен доступа к своему холодильнику.
Задача 1: Разработка эндпоинтов авторизации, обновления сессий и логаута на API Gateway
- Репозиторий / Компонент:
backend-api(API Gateway). - Контракт методов:
POST /api/v1/auth/register(или/login)POST /api/v1/auth/refreshPOST /api/v1/auth/logout
- Инструкция по шагам:
- На Шагах 1-3: Написать эндпоинты аутентификации. Реализовать первичную Pydantic-валидацию входящего тела (поля
email,password) и пробросить запрос по внутреннему gRPC/HTTP протоколу вauth-service. - На Шагах 9-11: Для эндпоинта ротации токенов принимать в теле запроса
current_refresh_token. Вызывать внутренний синхронный gRPC-метод авторизационного воркераVerifyAndRotate. - На Шагах 15-17: Для эндпоинта
logoutизвлекать строкуAccess Tokenиз заголовкаAuthorization: Bearer <token>иRefresh Tokenиз тела запроса. Направлять команду на отзыв сессии вauth-service. Возвращать клиенту статус200 OK(Шаг 20).
- На Шагах 1-3: Написать эндпоинты аутентификации. Реализовать первичную Pydantic-валидацию входящего тела (поля